package cn.tedu.medicalmanagementsystem.user.service;

import cn.tedu.medicalmanagementsystem.base.response.JsonResult;
import cn.tedu.medicalmanagementsystem.user.pojo.dto.AppointmentAddParam;
import cn.tedu.medicalmanagementsystem.user.pojo.vo.UserAppointmentVO;

import java.time.LocalDateTime;
import java.util.List;

public interface AppointmentService {
    JsonResult createAppointment(AppointmentAddParam param, Long userId);

    JsonResult<List<UserAppointmentVO>> getUserAppointments(Long userId);

    JsonResult<UserAppointmentVO> getAppointmentDetails(Long appointmentId);

    JsonResult cancelAppointment(Long appointmentId, Long userId);

    boolean isEscortAvailable(Long escortId, LocalDateTime appointmentTime, LocalDateTime endTime);
}